package CLIENT.Station;

import java.util.ArrayList;
import java.util.List;


/**
 * Classe d?crivant le comportement d'une station
 * 
 * @since 08/05/2014
 * @author Groupe AZZOUZI/DAMOTTE/PIER
 * 
 */
public class Station {

	// Attributs
	
	/**
	 * Identifiant de la station
	 */
	private int idStation;
	
	/**
	 * Nom de la station
	 */
	private String nomNom;

	/**
	 * Zone de rattachement de la station.
	 */
	private EnumZones zone;

	/**
	 * Liste des casiers rattach?s ? la station.
	 */
	private final List<Casier> listeCasiers;

	/**
	 * Constructeur par d?faut.
	 * 
	 * @param pZone
	 *            Zone de rattachement de la station.
	 */
	public Station(final EnumZones pZone) {
		zone = pZone;
		idStation = pZone.getNumeroZone();
		nomNom = "Station no "+pZone.getNumeroZone();
		listeCasiers = new ArrayList<Casier>();
		//par défaut 50 casiers dans une station
		for (int i = 1; i < 50; i++) {
			listeCasiers.add(new Casier(i));
		}
		
	}
	
	public int getIdStation() {
		return idStation;
	}

	public void setIdStation(int idStation) {
		this.idStation = idStation;
	}

	// M?thodes

	/**
	 * M?thode permettant ? un client de s'authentifier. Cette m?thode ne prend
	 * pas de mot de passe car notre application ne g?re pas les aspects
	 * s?curit?
	 * 
	 * @param idAdherent
	 *            : identifiant de l'adh?rent
	 * @return
	 */
	public String AuthentificationC(int idAdherent) {
		return null;
	}

	/**
	 * M?thode permettant ? un fournisseur de s'authentifier
	 * 
	 * @param idFournisseur
	 *            :
	 * @param code
	 *            :
	 * @return
	 */
	public String AuthentificationF(int idFournisseur, int code) {
		return null;
	}

	/**
	 * M?thode permettant ? un client de d?poser un colis
	 * 
	 * @param AdrDestinataire
	 *            : adresse du destinataire du colis
	 */
	public void depotInitial(String AdrDestinataire) {

	}

	/**
	 * M?thode permettant de saisir les coordonn?es d'un adh?rent
	 * 
	 * @param adherentDestinataire
	 *            : identifiant de l'adh?rent destinataire
	 */
	public void saisieCoordonnees(int adherentDestinataire) {

	}

	/**
	 * M?thode permettant d'adh?rer ? l'application
	 * 
	 * @param identite
	 *            :
	 * @param adresse
	 *            :
	 * @param infosBancaires
	 *            :
	 */
	public void demandeAdhesion(String identite, String adresse,
			int infosBancaires) {

	}

	/**
	 * M?thode permettant de r?cup?rer un colis
	 * 
	 */
	public void retirerColis() {

	}
	
	// Accesseurs

	public EnumZones getZone() {
		return zone;
	}

	public void setZone(EnumZones zone) {
		this.zone = zone;
	}

	public List<Casier> getListeCasiers() {
		return listeCasiers;
	}

}
